// components/jiucuo/jiucuo.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    show: Boolean // 控制弹窗显示/隐藏
  },

  /**
   * 组件的初始数据
   */
  data: {
    showModal: false, // 控制弹窗显示的内部状态
    animation: {}, // 弹窗动画
    content: '', // 纠错内容
    errorType: '' // 错误类型
  },

  /**
   * 监听属性变化
   */
  observers: {
    'show': function (newShow) {
      // 只在明确设置为true时打开弹窗
      if (newShow && !this.data.showModal) {
        this.setData({ showModal: true });
        this.openModal();
      }
      // 只有当外部show=false且弹窗当前是打开状态时才关闭
      else if (!newShow && this.data.showModal) {
        this.closeModal();
      }
    }
  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 阻止事件冒泡
    stopPropagation: function () {
    },

    // 初始化动画
    initAnimation: function () {
      this.animation = wx.createAnimation({
        duration: 300,
        timingFunction: 'ease',
      });
    },

    // 打开弹窗
    openModal: function () {
      // 确保动画已初始化
      if (!this.animation) {
        this.initAnimation();
      }

      // 添加弹出动画
      this.animation.translateY(500).step();
      this.setData({
        animation: this.animation.export()
      });

      // 然后回到原位，形成从下往上弹出的效果
      setTimeout(() => {
        this.animation.translateY(0).step();
        this.setData({
          animation: this.animation.export()
        });
      }, 10);
    },

    juankuan: function () {
      wx.navigateTo({
        url: '/service/donation/donation'
      });
      this.setData({ showModal: false });
    },
    canyu: function () {
      wx.navigateTo({
        url: '/service/activity/activity'
      });
      this.setData({ showModal: false });
    },
    // 关闭弹窗
    closeModal: function () {
      // 确保动画已初始化
      if (!this.animation) {
        this.initAnimation();
      }

      // this.animation.translateY(500).step();
      this.setData({
        animation: this.animation.export()
      });

      // 动画结束后隐藏弹窗
      setTimeout(() => {
        this.setData({ showModal: false });
        // 触发关闭事件通知父组件
        this.triggerEvent('close');
      }, 50);
    },

    // 提交纠错
    submit: function () {
      const { content, errorType } = this.data;
      // 这里可以添加提交逻辑
      console.log('提交纠错:', { content, errorType });
      wx.showToast({
        title: '感谢您的反馈！',
        icon: 'success',
        duration: 2000
      });
      // 提交后关闭弹窗
      this.closeModal();
    },

    // 输入内容变化
    onContentChange: function (e) {
      this.setData({
        content: e.detail.value
      });
    },

    // 选择错误类型
    selectErrorType: function (e) {
      this.setData({
        errorType: e.currentTarget.dataset.type
      });
    }
  },

  /**
   * 组件生命周期
   */
  lifetimes: {
    attached: function () {
      // 组件挂载时初始化动画
      this.initAnimation();
    }
  }
});